package org.example.groupwarehouse.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.groupwarehouse.entity.Goods;

import java.math.BigDecimal;
import java.util.List;

@Mapper
public interface GoodsMapper {
    //offset数据的偏移量
    List<Goods> selectByPage(@Param("offset") int offset, @Param("pageSize") int pageSize);
    //数据数
    long count();
    long countcategory(@Param("categoryId") Integer categoryId,@Param("goodsname") String goodsname);
    //查找所有最热的商品
    List<Goods> selectAllHot();
    //新增商品
    int insertGoods(Goods goods);
    //id查找商品
    Goods findById(int id);
    // 更新商品状态
    void updateGoodsStatus(Integer id, String status);

    List<Goods> selectByPageNew(@Param("offset") int offset,
                                @Param("pageSize") int pageSize);
    List<Goods> selectByPagecategory(@Param("offset") int offset,
                                     @Param("pageSize") int pageSize,
                                     @Param("categoryId") Integer categoryId,
                                     @Param("goodsname") String goodsname);
    int countByCategoryId(Integer id);
    // 添加接口方法
    List<Goods> selectByPageWithConditions(
            @Param("offset") int offset,
            @Param("pageSize") int pageSize,
            @Param("name") String name,
            @Param("categoryId") Integer categoryId,
            @Param("minPrice") BigDecimal minPrice,
            @Param("maxPrice") BigDecimal maxPrice
    );

    long countByConditions(
            @Param("name") String name,
            @Param("categoryId") Integer categoryId,
            @Param("minPrice") BigDecimal minPrice,
            @Param("maxPrice") BigDecimal maxPrice
    );

}
